﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;

using AppGISENA.ObjetosNegocio;
using AppGISENA.UIServicios;
using AppGISENA.UIServicios.ServiciosRemotos;

namespace AppGisena.Presentacion.Up
{
    public partial class RegAsesores : System.Web.UI.Page
    {
        UnidadProductivaServicios myservicios = new UnidadProductivaServicios();
      private static List<Instructor> mylistainstructor = new List<Instructor>(); 

        protected void Page_Load(object sender, EventArgs e)
        {

        }


        protected void Btn_BuscarUPGISENA_Click(object sender, DirectEventArgs e)
        {

            if (Txt_Cod_Up.Text != null)
            {
                try
                {
                    //buscar si la UP esta registrada en GISENA



                    var sofia = myservicios.getUPSofiaById((int.Parse)(Txt_Cod_Up.Text));

                    if (sofia == null)
                    {
                        X.Msg.Notify("GISENA", "No se encuentra la Unidad Productiva").Show();


                    }
                    else
                    {
                        Txt_Cod_Cent_Form2.Text = sofia.Cod_Cent_Form.ToString();
                        Txt_NFicha_UP2.Text = sofia.NFicha_UP;
                        Txt_Nomb_UP2.Text = sofia.Nomb_UP;


                        listarAsesoresSofiaPlus(Txt_Cod_Up.Text);

                    }




                }
                catch (Exception ex)
                {
                    X.Msg.Alert("GISENA", "Revise conexion" + ex).Show();

                    //falla en la conectividad, o sistema no disponible
                }
            }
            else
            {
                X.Msg.Alert("GISENA", "Digite el codigo de la Unidad Productiva").Show();

            }


        }

        private void listarAsesoresSofiaPlus(string codup)
        {
            

            if (Txt_Cod_Up.Text != null)
            {
                
                try
                {
                    //buscar si la UP esta registrada en GISENA



                   var sofiaremota = myservicios.getlistRemoteInstructor();//getUPSofiaRemotaById(codup);



                    if (sofiaremota == null)
                    {
                        X.Msg.Notify("GISENA", "No se encuentra la Unidad Productiva").Show();


                    }
                    else
                    {

                        var mysofiaremota = sofiaremota.Distinct().ToList();
                        //mysofiaremota.FirstOrDefault().
                        Str_Asesor.DataSource = mysofiaremota;
                        Str_Asesor.DataBind();
                        Str_Rol_Asesor.DataSource = myservicios.GetRolasesor();
                        Str_Rol_Asesor.DataBind();
                        mylistainstructor = mysofiaremota.ToList();

                    }

                    

                }
                catch (Exception ex)
                {
                    X.Msg.Alert("GISENA", "Revise conexion" + ex).Show();

                    //falla en la conectividad, o sistema no disponible
                }
            }
            else
            {
                X.Msg.Alert("GISENA", "Digite el codigo de la Unidad Productiva").Show();

            }

            
            
            
            
        }







        protected void Btn_Asesor_Nuevo_Click(object sender, DirectEventArgs e)
        {


            try
            {
                
                //consultar el store en memoria
                asesorBO myasesor=new asesorBO {
                    Apellido=   Txt_Apellidos.Text,
                     Celular= Txt_Telefono.Text,                     
                       Correo=Txt_Correo.Text ,
                       // Tp_Doc=tx
                           Identificacion=mylistainstructor.FirstOrDefault().ident,
                            Nombre=mylistainstructor.FirstOrDefault().Nombre



                };

                myservicios.CreateAsesor(myasesor);


              
                //Ventana_Asesor.Show();

            }
            catch (Exception ex)
            {
                X.Msg.Alert("GISENA", "Revise conexion" + ex).Show();

                //falla en la conectividad, o sistema no disponible
            }

        }



        protected void Btn_Registrar_Asesor_Nuevo_Click(object sender, DirectEventArgs e)
        {


            try
            {
                Ventana_Asesor.Show();


            }
            catch
            {




            }

        }




        protected void Btn_Eliminar_Asesor_Nuevo_Click(object sender, DirectEventArgs e)
        {

            try
            {
                X.Msg.Alert("GISENA", "Eliminar Produccion").Show();


            }
            catch
            {

                //falla en la conectividad, o sistema no disponible
            }


        }






      


        protected void Btn_Registrar_Asesor_Click(object sender, DirectEventArgs e)
        {


            try
            {
            // var myasesorselect  = mylistainstructor.FirstOrDefault(s => s.ident ==int.Parse(Slb_Rol_Asesr.Value.ToString()));

            var myasesorselect = (from myasesor in mylistainstructor
                                  where myasesor.ident == int.Parse(Slb_Rol_Asesr.Value.ToString())
                                  select myasesor).FirstOrDefault();

        

           
                //consultar el store en memoria
                asesorBO mynuevoasesor = new asesorBO
                {
                    Apellido = myasesorselect.Nombre,
                    Celular = "",
                 
                    Correo = "",


                    Identificacion = myasesorselect.ident,
                    Nombre = myasesorselect.Nombre



                };

                
                myservicios.CreateAsesor(mynuevoasesor);
              ///  vicular el instructor por cada rol que tenga
                //  int cantselec=  cmb_rol_asesor.SelectedItems.Count;//obtener la cantidad de items seleccionados (roles)
                //var valorseleccionado =int.Parse(cmb_rol_asesor.SelectedItems[0].Value); //obtener el valor del item seleccionado


                //Lista vacia para llenarla con los id de los tipo de roles seleccionada
               // List<int> list = new List<int>();
                for (int i = 0; i < cmb_rol_asesor.SelectedItems.Count; i++) // Loop through List with for
                {
                  //  list.Add(int.Parse(cmb_rol_asesor.SelectedItems[i].Value)); 

                   
                        VincularAsesorBo myvincularasesor = new VincularAsesorBo
                        {
                              
                            Cod_UP = int.Parse(Txt_Cod_Up.Text),
                            
                            Ident_Asesor = myasesorselect.ident,
                            Id_Tp_Rol = 1//int.Parse(cmb_rol_asesor.SelectedItems[i].Value),


                        };

                        myservicios.CreateVincularAsesores(myvincularasesor);

                    

                }

               
               


            }
            catch (Exception ex)
            {
                X.Msg.Alert("GISENA", "Revise conexion " + ex).Show();

                //falla en la conectividad, o sistema no disponible
            }


        }


       







    }
}